# -*- codeing = utf-8 -*-
# @Time : 2021/2/24 11:03
# @Atuthor: 朱朱
# @File: 077匿名函数.py
# @Software: PyCharm
""
"""
用lambda关键词能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤。

lambda函数的语法只包含一个语句，如下：

lambda 参数列表: 运算表达式
"""
def add(a,b):
    return a+b
print('0x%X'%id(add))

x = add(4,5)
print(x)
print('0x%X'%id(x))

fn = add # 相当于给函数add启了一个别名
print(fn(3,7))

# 匿名函数
# 用来表达一个简单的函数，函数调用的次数很少，基本上就是调用一次
# 调用匿名函数两种方式:
# 1. 给它定义一个名字(很少这样使用)
# 2. 把这个函数当做参数传给另一个函数使用(使用场景比较多)
mul = lambda a,b : a*b
print(mul(4,5))

# 利用匿名函数,实现计算器功能
def calc(a,b,fn):
    c = fn(a,b)
    return c
a = int(input('请输入a的值:'))
b = int(input('请输入b的值:'))
add = calc(a,b,lambda x,y:x+y)
sub = calc(a,b,lambda x,y:x-y)
mul = calc(a,b,lambda x,y:x*y)
div = calc(a,b,lambda x,y:x/y)

print(f'{a}+{b}={add}')
print(f'{a}-{b}={sub}')
print(f'{a}*{b}={mul}')
print(f'{a}/{b}={div}')
